package czk.jvm.lecture.alibaba;

import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;

public class ForMap {
    public static void main(String[] a) {
        /**
         * 使用 entrySet 遍历 Map 类集合 KV，而不是 keySet 方式进行遍历。
         * 说明：keySet 其实是遍历了 2 次，一次是转为 Iterator 对象，另一次是从 hashMap 中取出
         * key 所对应的 value。而 entrySet 只是遍历了一次就把 key 和 value 都放到了 entry 中，效
         * 率更高。如果是 JDK8，使用 Map.foreach 方法。
         */
        Map<Integer,String> map=new HashMap<>(5);
        map.put(1,"1");
        map.put(2,"2");
        // keyset遍历
        Set<Integer> integers = map.keySet();
        //entryset遍历
        Set<Map.Entry<Integer, String>> entries = map.entrySet();
        Iterator<Map.Entry<Integer, String>> iterator = entries.iterator();
        while (iterator.hasNext()){
            Map.Entry<Integer, String> next = iterator.next();
            System.out.println(next.getKey());
            System.out.println(next.getValue());
        }
        /**
         * 如果是 JDK8，使用 Map.foreach 方法。
         */
       map.forEach((k,v)->{
           System.out.print(k+"==");
           System.out.println(v);
       });
    }
}
